import redis
# redis连接池

REDIS_POOL = redis.ConnectionPool(
    host="localhost", password="", port=6379, encoding="utf-8", max_connections=100
)


def push_queque(value):
    """将值压入Redis队列"""
    conn = redis.Redis(connection_pool=REDIS_POOL)
    conn.lpush("DAY21_TASK_QUEUE", value)  # order.py 中用到


def pop_queque():
    """从Redis队列中弹出值"""
    conn = redis.Redis(connection_pool=REDIS_POOL)
    data = conn.brpop(
        "DAY21_TASK_QUEUE", timeout=10
    )  # 阻塞式弹出队列中的元素，超时时间为10秒
    if not data:
        return None
    return data[1].decode("utf-8")  # 返回弹出的元素


def fetch_all_queue():
    """获取Redis队列中的所有值"""
    conn = redis.Redis(connection_pool=REDIS_POOL)
    total_count = conn.llen("DAY21_TASK_QUEUE")  # 获取队列长度
    data = conn.lrange(
        name="DAY21_TASK_QUEUE", start=0, end=total_count
    )  # 获取队列中所有元素

    return data  # 返回所有元素的列表
